The invention is directed to an automatically sequencing method for the integration testing of object-oriented software.
Object-oriented programming (OOP) is continually gaining wider acceptance and usage throughout the software industry because of its benefits to the process and products of software engineering. Testing, especially during the integration phase, is of major importance in the area of bigger projects.
In contrast to traditional software having a modular or, respectively, functional structure and shared global data connected via function calls and data flows, object-oriented software is composed of objects and classes connected via message exchange, inheritance and call/busy relationships. Overall, there are far more mutual "dependencies" (call, busy, data attributes, etc.) in object-oriented programs than in traditional software. Due to the encapsulation of data and functions in the classes, there is a tight linkage between the data relationships and the call relationships.
Further, the functionality of an object-oriented program is not realized in a hierarchy of functions organized top-down; on the contrary, it is distributed in a network of objects communicating with one another. As a result, the complexity and the flow logic in an object-oriented program is removed from the individual functions or, respectively, methods to the correct interplay between the methods. This is further intensified by the specific, object-oriented features such as, for instance, inheritance, polymorphism, dynamic linking, overloading and reimplementation.
A "stub" of a method is a substitute implementation for testing purposes that does not offer the full functionality of the method but enables a test run. The process of "stubbing" when testing object-oriented software is more complicated than in procedural programming. The reasons for this lie in the different architecture and structure of the object-oriented software, in the data encapsulation and in the many mutual dependencies between the individual objects or, respectively, classes.
A description of other fundamental technical terms of object-oriented programming and differences between traditional software and object-oriented software may be found in an article by Steve Cook, "Introduction to Object Technology," OOP '92, Conference Proceedings, SIGS Publications, New York, 1992, pp. 57-71, incorporated herein by reference.
Object-oriented programming is becoming more and more popular. Therefore it is important to address the influence of its specific characteristics on integration testing, which include inheritance, polymorphism and dynamic binding, encapsulation and information hiding, call/use relations, and object communication.
There has not yet been any explicit method for the integration of object-oriented programs and the integration test therefor and, consequently, there are no corresponding test tools available in the marketplace.